package controller;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Ebene;

/**
 * Dieses Servlet zeigt die Ergebnisse der Suche an
 */
@WebServlet("/Suchergebnis")
public class Suchergebnis extends SessionControll {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Suchergebnis() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		if(super.loginPruefen(request, response)) {
			String suche = request.getParameter("suche");
			Ebene[] ergebnis;
			try {
				if(suche == null) {
					ergebnis = new Ebene[0];
				} else if(suche.equals("")) {
					ergebnis = new Ebene[0];
				} else {
					ergebnis = ebenenRepository.suche(suche);
				}
				request.setAttribute("suchergebnis", ergebnis);
				RequestDispatcher view;
				view = request.getRequestDispatcher("Suche.jsp");
				view.forward(request, response);					
			} catch (ClassNotFoundException e) {
				new helper.Logging("Fehler F140",e.toString(), benutzerRepository.getBenutzerNachEmail((String) request.getSession().getAttribute("email")), (byte)1);
				e.printStackTrace();
				response.sendRedirect("Fehler?weiterleitung=AufgabenListe&fehler=Es konnte nicht auf die Datenbank zugegriffen werden! Bitte versuchen Sie es erneut oder kontaktieren Sie einen Administrator. (F140)");
			} catch (SQLException e) {
				new helper.Logging("Fehler F141",e.toString(), benutzerRepository.getBenutzerNachEmail((String) request.getSession().getAttribute("email")), (byte)1);
				e.printStackTrace();
				response.sendRedirect("Fehler?weiterleitung=AufgabenListe&fehler=Es konnte nicht auf die Datenbank zugegriffen werden! Bitte versuchen Sie es erneut oder kontaktieren Sie einen Administrator. (F141)");
			}
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		if(super.loginPruefen(request, response)) {
			RequestDispatcher view;
			view = request.getRequestDispatcher("Einrichten.jsp");
			view.forward(request, response);					
		}
	}

}
